package com.my.hzb.common.util;

import org.springframework.stereotype.Component;

import java.io.File;
import javax.mail.internet.MimeMessage;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;

@Component
public class SendMail {

//	@Autowired
	private JavaMailSender javaMailSender;
    
	/*
	 * 发送简单的文本邮件
	 */
	public void sendMailOnlyText(String emailFrom,String emailTo,String subject,String text) {
		// 建立邮件消息  
		SimpleMailMessage mailMessage = new SimpleMailMessage();
        try {
			// 设置收件人，寄件人  
        	mailMessage.setTo(emailTo);
        	mailMessage.setFrom(emailFrom);
	        // true 表示启动HTML格式的邮件  
        	mailMessage.setSubject(subject);
        	mailMessage.setText(text);
	        // 这里的方法调用和插入图片是不同的。
	        javaMailSender.send(mailMessage);  
        } catch (Exception e) {
			e.printStackTrace();
		}
    }
	public void sendMailByImage(String emailFrom,String emailTo,String subject,String text,boolean isHTML,File image) {
		MimeMessage mailMessage = javaMailSender.createMimeMessage();
//		// multipart模式 为true时发送附件 可以设置html格式  
        try {
			MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,true, "utf-8");
			// 设置收件人，寄件人  
	        messageHelper.setTo(emailTo);
	        messageHelper.setFrom(emailFrom);
	        // true 表示启动HTML格式的邮件  
	  
	        FileSystemResource img = new FileSystemResource(new File("e:/aa.jpg"));
	        System.out.println(new File("e:/aa.jpg").exists());
	        messageHelper.addInline("aaa", img);
	        messageHelper.setText(  
	        		"<html><head></head><body><h1>hello!!spring image html mail</h1>"  
	        				+ "<img src=\"cid:aaa\"/></body></html>", true);  
	        // 这里的方法调用和插入图片是不同的。
	        messageHelper.setSubject(subject);
	        javaMailSender.send(mailMessage); 
        } catch (Exception e) {
			e.printStackTrace();
		}
    }
	/**
	 * 发送包含附件的邮件
	 * @param emailFrom
	 * @param emailTo
	 * @param subject
	 * @param text
	 * @param isHTML
	 * @param fjFile
	 * @param fileName
	 */
	public void sendMailByFile(String emailFrom,String emailTo,String subject,String text,boolean isHTML,File fjFile,String fileName) {
		MimeMessage mailMessage = javaMailSender.createMimeMessage();
//		// multipart模式 为true时发送附件 可以设置html格式  
        try {
			MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,true, "utf-8");
			// 设置收件人，寄件人  
	        messageHelper.setTo(emailTo);
	        messageHelper.setFrom(emailFrom);
	        // true 表示启动HTML格式的邮件  
	        messageHelper.setText(text,isHTML);
	        if(null!=fjFile){
		        FileSystemResource file = new FileSystemResource(fjFile);
		        if(null==fileName){
		        	messageHelper.addAttachment(fjFile.getName(), file);
		        }else{
		        	messageHelper.addAttachment(fileName, file);
		        }
	        }
	        // 这里的方法调用和插入图片是不同的。
	        messageHelper.setSubject(subject);
	        javaMailSender.send(mailMessage);  
        } catch (Exception e) {
			e.printStackTrace();
		}
    }
	
}
